#ifndef OFFLINEOPTIMUMALGORITHM_H_
#define OFFLINEOPTIMUMALGORITHM_H_
#include "OLTSPInstance.h"

class OfflineOptimumAlgorithm
{
	list<Request> requests;
	int dimensions;
	float speed;
	bool homing;
	float time_offset;
	float calculate_track_distance(list<Request>::iterator start, list<Request>::iterator end, float start_time_offset);
	void mark_visited_time(list<Request>::iterator start, list<Request>::iterator end, float time_offset);
public:
	OfflineOptimumAlgorithm(list<Request> requests, bool homing, float time_offset);
	virtual ~OfflineOptimumAlgorithm();
	list<Request> calculate();
};

#endif /*OFFLINEOPTIMUMALGORITHM_H_*/
